package neuralNetwork;

import java.util.List;
import java.util.Map;

import neuralModel.neuron.INeuron;
import neuralModel.neuron.ISignal;

public interface INeuralNetwork
{
	public Map<String, INeuron> getNeuronMap();
	public void setNeuronMap(Map<String, INeuron> neuronMap);

	public List<ISignal> getSignalList();
	public void setSignalList(List<ISignal> signalList);

	public void addNeuron(INeuron neuron, int networkLevel);

	public INeuron getNeuron(String name);

	public void removeNeuron(String name);

	public void removeNeuron(INeuron neuron);

	public int getLayerCount();

	public List<INeuron> getLayer(int layer);

	public void connectNeurons(String sourceName, String targetName, double weight);

	public void connectNeurons(INeuron source, INeuron target, double weight);

}
